protocols_20H = [{"name": "时间标识", "start_index": 0, "length": 6, "type": "time"},
                 {"name": "枪号", "start_index": 6, "length": 1, "type": "HEX"},
                 {"name": "订单号", "start_index": 7, "length": 32, "type": "ASCII"},
                 {"name": "用户ID", "start_index": 39, "length": 32, "type": "ASCII"},
                 {"name": "用户类型", "start_index": 71, "length": 2, "type": "HEX"},
                 {"name": "组织机构代码", "start_index": 73, "length": 9, "type": "ASCII"},
                 {"name": "控制方式", "start_index": 82, "length": 1, "type": "HEX",
                  "enum": ['1-定时长充', "2-定电量充", '3-定金额充', '4-自动充满']},
                 {"name": "控制参数", "start_index": 83, "length": 4, "type": "HEX"},
                 {"name": "充电模式", "start_index": 87, "length": 1, "type": "HEX",
                  "enum": ['1-普通', "2-轮充", '3-大功率', '4-超级充', '5-电池维护', '6-柔性充']},
                 {"name": "启动方式", "start_index": 88, "length": 1, "type": "HEX",
                  "enum": ['1-立即启动', "2-定时启动"]},
                 {"name": "定时启动时间", "start_index": 89, "length": 6, "type": "time"},
                 {"name": "唤醒信号开闭控制", "start_index": 95, "length": 1, "type": "HEX",
                  "enum": ['0-未控制', "1-控制"]},
                 {"name": "预留", "start_index": 96, "length": 5, "type": "HEX"},
                 {"name": "计费模型选择", "start_index": 101, "length": 1, "type": "HEX",
                  "enum": ['1-使用本地计费模型', "2-启动命令附带计费模型"]},
                 {"name": "执行结果", "start_index": 102, "length":1, "type": "HEX",
                  "enum": ['1-成功', "2-失败"]},
                 {"name": "失败原因", "start_index": 103, "length": 1, "type": "HEX",
                  "enum": ['0-无','1-设备故障', "2-充电枪使用中", '3-与预约用户不一致', '4-定时失败', '5-参数不支持', '6-其他', "连接确认信号异常"]},
                 ]
